package crmdna.api.endpoint;

import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.Named;
import com.google.api.server.spi.config.Nullable;
import com.google.appengine.api.users.User;

import crmdna.common.APIResponse;
import crmdna.common.DateUtils.DateRange;
import crmdna.common.UnitUtils.ReportingUnit;


@Api(name = "inventory")
public class InventoryApi {

	public APIResponse addNewType(@Nullable @Named("client") String client,
			@Named("displayName") String type, User user) {

		return null;
	}

	public APIResponse addNewItem(
			@Nullable @Named("client") String client,
			@Named("typeIdOrName") String typeIdOrName,
			@Nullable @Named("groupIdOrNameDefaultMahamudra") String groupIdOrName,
			@Named("displayName") String itemDisplayName, User user) {

		return null;
	}

	public APIResponse checkin(
			@Nullable @Named("client") String client,
			@Named("itemIdOrName") String itemIdOrName,
			@Nullable @Named("groupIdOrNameDefaultMahamudra") String groupIdOrName,
			@Named("quantity") double quantity,
			@Named("unit") ReportingUnit unit, User user) {

		return null;
	}

	public APIResponse checkout(
			@Nullable @Named("client") String client,
			@Named("itemIdOrName") String itemIdOrName,
			@Nullable @Named("groupIdOrNameDefaultMahamudra") String groupIdOrName,
			@Named("quantity") double quantity,
			@Named("unit") ReportingUnit unit, User user) {

		return null;
	}

	public APIResponse getCurrentStockList(
			@Nullable @Named("client") String client,
			@Nullable @Named("groupIdOrNameDefaultMahamudra") String groupIdOrName, 
			@Nullable @Named("sendEmail") Boolean sendEmail, User user) {

		return null;
	}
	
	public APIResponse getStockChanges(
			@Nullable @Named("client") String client,
			@Nullable @Named("groupIdOrNameDefaultMahamudra") String groupIdOrName,
			@Named("dateRange") DateRange dateRange,
			@Nullable @Named("sendEmail") Boolean sendEmail, User user) {

		return null;
	}
}
